-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters 
-- command (Ctrl-Shift-M) to fill in the parameter 
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Rainiero
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE CrearProyectoDesdeSolicitud
	@idSolicitud int
AS
BEGIN
	
	INSERT INTO Proyectos(CuentaBancaria, DescripcionProyecto, FechaCreacion, FechaFinalizacion, FechaInicio, IdEstadoProyecto, IdOficialProyecto,
	IdOrganizacion, IdPais, IdTipoProyecto, NombreProyecto, ObjetivosProyecto, PresupuestoActualDolares, PresupuestoInicialDolares)
	SELECT CuentaBancaria, DescripcionProyecto, (SELECT {fn NOW()}), FechaFinalizacion, FechaInicio, 
	(SELECT IdEstadoProyecto FROM EstadosProyecto WHERE NombreEstadoProyecto = 'Proyecto en Progreso'), NULL,
	IdOrganizacion, IdPais,
	(SELECT IdTipoProyecto FROM TipoProyecto WHERE TipoProyecto = N'Proyecto'),
	NombreProyecto, ObjetivosProyecto, PresupuestoActualDolares, PresupuestoInicialDolares FROM Proyectos WHERE IdProyecto = @idSolicitud
	
	DECLARE @idProyecto int
	SELECT @idProyecto = SCOPE_IDENTITY()
	
	INSERT INTO DesembolsosProyecto(FechaEntrega, FechaEntregaReal, IdEstadoDesembolsoProyecto, IdProyecto, MontoDolares)
	SELECT FechaEntrega, FechaEntregaReal, IdEstadoDesembolsoProyecto, @idProyecto, MontoDolares FROM DesembolsosProyecto WHERE IdProyecto = @idSolicitud
	
	INSERT INTO OtrosResponsablesProyecto(IdEstadoResponsable, IdProyecto, IdUsuario)
	SELECT IdEstadoResponsable, @idProyecto, IdUsuario FROM OtrosResponsablesProyecto WHERE IdProyecto = @idSolicitud
	
	INSERT INTO ContactosProyecto(IdEstadoContactoProyecto, IdPersona, IdProyecto)
	SELECT IdEstadoContactoProyecto, IdPersona, @idProyecto FROM ContactosProyecto WHERE IdProyecto = @idSolicitud
	
	DECLARE @idCronogramaBase int
	SELECT @idCronogramaBase = MAX(IdCronograma) FROM Cronogramas WHERE IdProyecto = @idSolicitud
	
	INSERT INTO Cronogramas(FechaCreacion, FechaUltimaModificacion, IdEstructuraOficialPresupuesto, IdProyecto)
	SELECT (SELECT {fn NOW()}), (SELECT {fn NOW()}), IdEstructuraOficialPresupuesto, @idProyecto FROM Cronogramas WHERE IdCronograma = @idCronogramaBase
	
	DECLARE @idCronograma int
	SELECT @idCronograma = SCOPE_IDENTITY()
	
	UPDATE ActividadesProyecto SET IdCronograma = @idCronograma WHERE IdCronograma = @idCronogramaBase
	
END
GO
